#ifndef _RESULTS_
#define _RESULTS_ 1

#include "statement.h"

#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1

enum struct MetaCommandResult {
    Success,
    Exit,
    UnrecognizedCommand,
};

enum struct PrepareResult {
    Success,
    SyntaxError,
    UnrecognizedStatement,
    StringTooLong,
    NegativeID
};

struct CompileResult {
    Statement state;
    MetaCommandResult meta_result = MetaCommandResult::Success;
    PrepareResult prepare_result = PrepareResult::Success;
};

enum ExecuteResult {
    Success,
    TableFull,  //! Deprecated
    TableEmpty,
    DuplicateKey,
    Unexpected
};

#endif